1. Technical Field
The present invention relates in general to the field of data processing systems, and more particularly, the field of data processing systems utilizing a non-volatile memory. Still more particularly, the present invention relates to a system and method of reducing latency in data processing systems utilizing a non-volatile memory.
2. Description of the Related Art
In recent years, processing speeds in computer systems have increased exponentially. Processors with core frequencies of over one gigahertz have become common. However, to take full advantage of modem day processors, all aspects and components of a computer system must be improved. Most modem computer systems utilize hard disk drive technology, as well as random access memory (RAM) and read-only memory (ROM).
Frequently, in today's computer systems, a hard disk drive is utilized as a low-cost, high-capacity data storage device. Unfortunately, hard disk drive units have a slower response time than any other part of a computer system. This is especially the case when multiple write requests are issued in quick succession. When multiple write requests are issued in quick succession, conventional hard disk drive units require considerable latency between an issue of a write request until the write request is actually executed. Most conventional hard disk drive units process the write requests in the order received by implementing a queue of pending write commands while the hard disk drive issues a notification to the host computer that the write data command has been received.
The pending write commands also have associated write data. The write data are stored in a cache memory. It should be readily apparent to ones skilled in the art that there exists at least two methods of writing data stored in the cache memory to a magnetic media of the hard disk drive unit.
In a first method, data are read from the cache memory and written to the magnetic media of the hard disk drive unit in the order the write data are stored in the memory cache. This is similar to a first-in, first-out (FIFO) scheme, where a first command stored in a queue or any type of memory structure well-known in the art is executed first.
In a second method, the pending write commands are executed and the associated data are written to the hard drive unit with reference to a sector information field included in each write command. The sector information included in each write command designates an intended destination for the associated data to be written on the hard disk drive medium.
According to the aforementioned first method well-known in the art, a time delay between write command execution and the writing of the associated data can be large. This time delay is known as seek and rotational latency. A write head included in the disk drive unit spends much time seeking the correct disk sector designated by the sector information included in each write command because the disk drive unit writes the associated data in the order the corresponding write command was received. This first method does not consider the distance between the specified disk sectors between a first write command and a subsequent write command. This limits the execution speed of a data processing system utilizing such a disk drive unit because the speed of write command execution is limited due to the aforementioned latency.
The second method addresses one of the shortcomings of the first method by implementing what should be well-known to those skilled in the art as rotational position optimization (RPO). Also, the second method updates the writing order so as to minimize a seek time of the write head included in the hard disk drive unit. More specifically, when multiple write commands have been stored in a queue, commands are selected sequentially to be executed according to RPO. RPO estimates both a seek time which represents a duration necessary for the write head to find a target track on the recording media plus and a rotational latency of the media, which represents a duration necessary for the write head to access the target sector after successfully reaching the target track. Also, RPO selects a write command in the queue as a next command to be executed by finding a write command with a next lowest estimated seek time and rotational latency.
Since RPO can reduce write command execution time, due to reduced seek time and rotational latency, the performance of the hard disk drive unit and the overall performance of the data processing system utilizing the hard disk drive unit is improved. Despite the improvements presented by RPO, it is still desirable to further reduce the write command execution time.
Another method for reducing write command execution time is a technique disclosed in Japanese Patent Application No. 2000-019379. In this technique of reducing write command execution time, a logical block address of a queued present write command is compared with the logical block address of a next write command to ascertain a positional relationship between the two logical block addresses of the present and the next write commands. A determination is made whether or not the logical block addresses of the present and the next write commands are separated. If the logical block addresses to the present and the next write commands are separated, a determination is made whether or not a separated distance between the logical block addresses of the present and the next write commands is under a predetermined value. If the separated distance is under a predetermined value, write data corresponding to both of the present and the next write commands are written. If it is determined that the logical block addresses of the present and subsequent write commands are separated, a check is made to determine whether or not the separation distance is under a predetermined value. In case the separation distance is determined to be under the predetermined value, write data corresponding to both of the preceding and succeeding write commands are written continuously on the recording medium.
According to the aforementioned data writing method, data are actually written on the recording medium at a minimal distance between the logical block addresses of the present and the subsequent write commands. The write head seek operation is performed at the minimal distance between those logical block addresses, thereby minimizing the latency. Consequently, write operation efficiency, as well as the hard disk drive unit performance are also improved.